<?php

class PegawaiController extends Zend_Controller_Action
{   
    private $_pegawai;
    
    public function preDispatch() {
        $this->_pegawai = new Application_Model_Pegawai();
        $this->view->site = $this->getRequest()->getControllerName();
    }
    
    public function init()
    {
        if(!Zend_Auth::getInstance()->hasIdentity())
            $this->_redirect('/auth/');
    }

    public function indexAction()
    {
        $pegawai = $this->_pegawai->getDataJoin();
        $row = $this->_pegawai->checkRowPegawai();
        
        $this->view->pegawai = $pegawai;
        
        if ($row == 0)
          $this->view->notFound = '<div class="notfound">Tidak Ada Data di Halaman Ini</div>';
        else
          $this->view->notFound = '<div class="notfound">Terdapat '.$row.' Data Pada Tabel Ini</div>';
        
    }

    public function addAction()
    {
       $form = new Application_Form_Pegawai();
        $this->view->form = $form;
        
        if($this->_request->isPost())
        {
            if($form->isValid($this->_request->getPost()))
            {
                $nik = $form->getValue('nik');
                $nama_pegawai = $form->getValue('nama_pegawai');
                $tanggal_lahir = $form->getValue('tanggal_lahir');
                $jenis_kelamin = $form->getValue('jenis_kelamin');
                $alamat_pegawai = $form->getValue('alamat_pegawai');
                $no_telepon_pegawai = $form->getValue('no_telepon_pegawai');
                $email_pegawai = $form->getValue('email_pegawai');
                $tanggal_masuk_ojt = $form->getValue('tanggal_masuk_ojt');
                $tanggal_keluar_ojt = $form->getValue('tanggal_keluar_ojt');
                $tanggal_masuk_kerja = $form->getValue('tanggal_masuk_kerja');
                $tanggal_keluar_kerja = $form->getValue('tanggal_keluar_kerja');
                $id_departemen = $form->getValue('id_departemen');
                $id_posisi = $form->getValue('id_posisi');
                $id_status_pegawai = $form->getValue('id_status_pegawai');
                
                $data = array('nik' => $nik,
                              'nama_pegawai' => $nama_pegawai,
                              'tanggal_lahir' => $tanggal_lahir,
                              'jenis_kelamin' => $jenis_kelamin,
                              'alamat_pegawai' => $alamat_pegawai,
                              'no_telepon_pegawai' => $no_telepon_pegawai,
                              'email_pegawai' => $email_pegawai,
                              'tanggal_masuk_ojt' => $tanggal_masuk_ojt,
                              'tanggal_keluar_ojt' => $tanggal_keluar_ojt,
                              'tanggal_masuk_kerja' => $tanggal_masuk_kerja,
                              'tanggal_keluar_kerja' => $tanggal_keluar_kerja,
                              'id_departemen' => $id_departemen,
                              'id_posisi' => $id_posisi,
                              'id_status_pegawai' => $id_status_pegawai
                    );
                
                if ($this->_pegawai->checkPegawai($nik))
                {
                    $this->view->duplicate = '<ul class="errors" style="margin-left:150px;"><li>Status Sudah Ada</li></ul>';
                } else {
                    $this->_pegawai->pegawaiBaru($data);
                    $this->_redirect('pegawai/index');
                }} else {
                    $form->populate($this->_request->getPost());
                }
        }
    }

    public function viewAction()
    {
        $id = $this->_getParam('id');
        if ($id != null) {
            
            $pegawai = $this->_pegawai->getDataJoinWithId($id);
            
            foreach($pegawai as $pegawai)
            
            if($pegawai == null)
            {
                $this->view->notFound = '<div class="notfound">Data Tidak Ditemukan</div>';
            } else {
                $this->view->pegawai = $pegawai;
            }
            
        } else {
            $this->_redirect('pegawai/index');
        }
    }

    
    public function editAction()
    {
        $form = new Application_Form_Pegawai();
        $form->tambah->setLabel('Simpan');
        $this->view->form = $form;
        
        if($this->_request->isPost())
        {
            if($form->isValid($this->_request->getPost()))
            {
                $nik = $form->getValue('nik');
                $nama_pegawai = $form->getValue('nama_pegawai');
                $tanggal_lahir = $form->getValue('tanggal_lahir');
                $jenis_kelamin = $form->getValue('jenis_kelamin');
                $alamat_pegawai = $form->getValue('alamat_pegawai');
                $no_telepon_pegawai = $form->getValue('no_telepon_pegawai');
                $email_pegawai = $form->getValue('email_pegawai');
                $tanggal_masuk_ojt = $form->getValue('tanggal_masuk_ojt');
                $tanggal_keluar_ojt = $form->getValue('tanggal_keluar_ojt');
                $tanggal_masuk_kerja = $form->getValue('tanggal_masuk_kerja');
                $tanggal_keluar_kerja = $form->getValue('tanggal_keluar_kerja');
                $id_departemen = $form->getValue('id_departemen');
                $id_posisi = $form->getValue('id_posisi');
                $id_status_pegawai = $form->getValue('id_status_pegawai');
                
                $data = array('nik' => $nik,
                              'nama_pegawai' => $nama_pegawai,
                              'tanggal_lahir' => $tanggal_lahir,
                              'jenis_kelamin' => $jenis_kelamin,
                              'alamat_pegawai' => $alamat_pegawai,
                              'no_telepon_pegawai' => $no_telepon_pegawai,
                              'email_pegawai' => $email_pegawai,
                              'tanggal_masuk_ojt' => $tanggal_masuk_ojt,
                              'tanggal_keluar_ojt' => $tanggal_keluar_ojt,
                              'tanggal_masuk_kerja' => $tanggal_masuk_kerja,
                              'tanggal_keluar_kerja' => $tanggal_keluar_kerja,
                              'id_departemen' => $id_departemen,
                              'id_posisi' => $id_posisi,
                              'id_status_pegawai' => $id_status_pegawai
                    );
                    $this->_pegawai->pegawaiUpdate($data, $form->getValue('id_pegawai'));
                    $this->_redirect('pegawai/index');
                }} else {
                    $id = $this->_getParam('id',0);
                    $pegawai = $this->_pegawai->getPegawai($id);
                    if ($id > 0){
                       $form->populate($pegawai);
                    }  
                }
        }

    public function deleteAction()
    {
        if(!$this->_request->isXmlHttpRequest())
        {
            $this->_redirect('/pegawai/');
        } else {
            $this->_helper->viewRenderer->setNoRender();
            $this->_helper->getHelper('layout')->disableLayout();
            $id = $this->getRequest()->getParam('id');
            if($id)
            {
                $this->_pegawai->pegawaiDelete($id);
            } else {
                $this->_redirect('pegawai');
            }
        }
    }

}